/**
 *
 */
package com.angel.resourceBundle.daos.propertyValue;

import java.io.Serializable;
import java.util.Collection;

import com.angel.dao.generic.interfaces.GenericDAO;
import com.angel.resourceBundle.propertyValue.PropertyValue;

/** {@link PropertyValueDAO} helps you to interact between repository and your application.
 *
 *
 * @author William
 *
 */
public interface PropertyValueDAO<T extends PropertyValue, Code extends Serializable> extends GenericDAO<T, Code> {


	/** Find a property value with an extended key.
	 *
	 * @param extendedKey
	 * @return a property value object.
	 */
	public PropertyValue findUniqueByExtendedKey(String extendedKey);
	
	public PropertyValue findUniqueOrNullByExtendedKey(String extendedKey);

	public Collection<PropertyValue> findAllByExtendedKey(String[] extendedKey);

	public Collection<PropertyValue> findAllByResourceBundleContextKey(String contextKey);

	public void deleteUniqueByExtendedKey(String extendedKey);


	public Long countAllWithExtendedKey(String extendedKey);


}
